
package rodilock;


//Universidad del Valle de Guatemala
//Algoritmos y Base de Datos
//Juan Fernando Moraflores Cifuentes, 12938
//Carlos Sagastume, 12113
//Rodimiro Castañeda, 12122
public class lock3 implements ilock {
 
    //
     int[] pass;// este arreglo sirve 
     int[] defau={1,3,1,6,0,1,2,1,2,1,21,2,1,2};//solo se define con cualquier valor
     int x=4; 
     int xy;
     boolean open = false;
   //  int pass1, pass2, pass3, pass4;//variables en donde se puede almacenar los nuevos valores
     
   //Cosntructor  
void lock3(){
 this.x=4; //si el valor de 1, está cerrado, si el valor es 2 el candado está abierto
 this.pass=new int[x];

 this.defau=new int[x];

}

/*public void define(){ // la lógica de java está loca

pass1=9;
pass2=0;
pass3=21;
pass4=0;

}
*/
public void assign(){ //se asigna el valor default de el candado
 defau[0]=9;
 defau[1]=0;
 defau[2]=21;
 defau[3]=0;

}

//sets
    public void setPass(int[] pass) {
        this.pass = pass;
    }

    public void setDefau(int[] defau) {
        this.defau = defau;
    }

    public void setX(int x) {
        this.x = x;
    }

    public void setXy(int xy) {
        this.xy = xy;
    }

    public void setOpen(boolean open) {
        this.open = open;
    }
    
    
    
   // public void setXY(int xy){
     //   this.xy = xy;
    //}
/*
    public void setPass1(int pass1) {
        this.pass1 = pass1;
    }

    public void setPass2(int pass2) {
        this.pass2 = pass2;
    }

    public void setPass3(int pass3) {
        this.pass3 = pass3;
    }

    public void setPass4(int pass4) {
        this.pass4 = pass4;
    }
*/

    //gets
    public int[] getPass() {
        return pass;
    }

    public int[] getDefau() {
        return defau;
    }

    public int getX() {
        return x;
    }

    public int getXy() {
        return xy;
    }

    public boolean isOpen() {
        return open;
    }
    
    
    //public int getXY(){
        //return xy;
    //}
/*
    public int getPass1() {
        return pass1;
    }

    public int getPass2() {
        return pass2;
    }

    public int getPass3() {
        return pass3;
    }

    public int getPass4() {
        return pass4;
    }

*/

 //este es el valor boolean para ver si 

     @Override
 public boolean Press(){//este método va a verificar si el codigo es el correcto
   
     for(int i=0; i<x; i++){
     if(pass[i]==defau[i]){
         System.out.println("El digito es correcto");
         
        open =true;
         
     }else if(pass[i]!=defau[i]){
         System.out.println("El digito es incorrecto");
         open=false;
         i=i+4;// si alguno de los digitos no es correcto, el ciclo for se cancela
     }
         
     
     }
     if (open==true){
     System.out.println("El candado esta abierto");
     
     }else if(open==false){
     
         System.out.println("El candado esta cerrado");
     }
     
 return open;
 }   
     @Override
 public String Reset(){
// if(open==true){
     for(int y=0; y<x;y++){
 defau[y]=pass[y];
 System.out.println("Nueva clave: " + pass[y]);
 
  //   }
 }
 return "Nueva clave: " + pass[xy];    
 
 }   
    
    
}
